package 面向对象;
/**
 基本数据类型的包装类，用处不多
 int>>Integer char>>Character
 double float boolean byte shot long  都是首字母大写
 其中数值类型是Numner的子类，Boolean和Character是Object的直接子类
 
 
*/
public class 包装类
{
	public static void main(String[] args){
		Integer i1= new Integer(10);//自动装箱
		int i2=i1.intValue();//自动拆箱
		
		Integer i3=10;//这种用的多，同 String对象的用法，i3不是对象
		
		//数值字符串转换为int和Integer对象
		String s1="18";//需是数值
		int i4=Integer.parseInt(s1);//返回int数值，其他数据类型用法同parseXxx()
		Integer i5=Integer.valueOf(s1);//返回int对象
		
		//new和不new的区别
		Integer a1= new Integer(10);
		Integer a2= new Integer(10);
		System.out.println(a1==a2);//由于a1 a2是对象==比较的是对象地址，不同对象所以返回false
		System.out.println(a1.equals(a2));//equals()integer对象重写了，比较的是值所有返回true
		
		Integer a3= 10;
		Integer a4= 10;
		System.out.println(a3==a4);//不用new的，==会返回true(-128到127，java里面把常用的1字节内的缓存了，所以a3 4对象引用一样)
		System.out.println(a3.equals(a4));//true
		
		Integer a5= 128;
		Integer a6= 128;
		System.out.println(a5==a6);//不用new的，==会返回false(-128到127，java里面把常用的1字节内的缓存了，但是超过127，a3 4对象重新建的，对象不同)
		System.out.println(a6.equals(a5));//true
		
	}
}
